package com.exam.controller;
import com.exam.entity.FillQuestion;
import com.exam.entity.JudgeQuestion;
import com.exam.service.FillQuestionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageRequest;
import org.springframework.data.domain.Pageable;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api/fill-questions")
public class FillQuestionController {

    @Autowired
    private FillQuestionService fillQuestionService;

    @PostMapping
    public FillQuestion addFillQuestion(@RequestBody FillQuestion fillQuestion) {
        return fillQuestionService.addFillQuestion(fillQuestion);
    }

    @PutMapping("/{id}")
    public FillQuestion updateFillQuestion(@PathVariable Long id, @RequestBody FillQuestion fillQuestion) {
        return fillQuestionService.updateFillQuestion(id, fillQuestion);
    }
//@PutMapping("/{id}")：处理PUT请求，用于更新指定ID的填空题。
//@PathVariable Long id：从URL路径中获取填空题的ID。
//@RequestBody：将请求体中的JSON数据转换为FillQuestion对象。
    @DeleteMapping("/{id}")
    public void deleteFillQuestion(@PathVariable Long id) {
        fillQuestionService.deleteFillQuestion(id);
    }
//@DeleteMapping("/{id}")：处理DELETE请求，用于删除指定ID的填空题。
//@PathVariable Long id：从URL路径中获取填空题的ID。
    @GetMapping("/{id}")
    public FillQuestion getFillQuestionById(@PathVariable Long id) {
        return fillQuestionService.getFillQuestionById(id);
    }
//处理GET请求，用于根据ID获取填空题。
//@PathVariable Long id：从URL路径中获取填空题的ID。
    @GetMapping
    public List<FillQuestion> getAllFillQuestions() {
        return fillQuestionService.getAllFillQuestions();
    }

    @PostMapping("/import")
    public void importFillQuestions(@RequestBody List<FillQuestion> fillQuestions) {
        fillQuestionService.importFillQuestions(fillQuestions);
    }
    //处理POST请求，用于批量导入填空题。
    //@RequestBody：将请求体中的JSON数据转换为FillQuestion对象的列表。
    @PostMapping("/check-duplicate")
    public boolean checkDuplicate(@RequestBody FillQuestion fillQuestion) {
        return fillQuestionService.checkDuplicate(fillQuestion);
    }
    //处理POST请求，用于检查填空题是否重复。
    //@RequestBody：将请求体中的JSON数据转换为FillQuestion对象。
    @GetMapping("/paged")
    public Page<FillQuestion> getAllFillQuestionsPaged(
            @RequestParam(defaultValue = "0") int page, // 当前页
            @RequestParam(defaultValue = "10") int size // 每页大小
    ) {
        Pageable pageable = PageRequest.of(page, size);
        return fillQuestionService.getAllFillQuestions(pageable);
    }
//考题的分页
}